﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace QuanLyBepAnTuThien
{
    public partial class UcQuanLyTo : UserControl
    {
        public UcQuanLyTo()
        {
            InitializeComponent();
        }
        connect cn = new connect();
        bool them = true;
        int vitri;
        private void loaddata()
        {
            gridControlTo.DataSource = cn.getDataTable("tblTo_DS");
        }
        private void UcQuanLyTo_Load(object sender, EventArgs e)
        {
            loaddata();
            txtTenTo.Enabled = false;
            btnLuu.Enabled = false;
            btnSua.Enabled = true;
            btnThem.Enabled = true;
            btnXoa.Enabled = true;
            gridControlTo.Enabled = true;
        }

        private void danhSachTo_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            if (e.RowHandle == danhSachTo.FocusedRowHandle)
            {
                e.Appearance.BackColor = Color.DeepSkyBlue;
            }
        }

        private void danhSachTo_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            try
            {
                //lbSoLuong.Text=gridViewDSNhanVien.DataRowCount.ToString();
                txtMaTo.Text = danhSachTo.GetFocusedRowCellDisplayText("MaTo");
                txtTenTo.Text = danhSachTo.GetFocusedRowCellDisplayText("TenTo");
                SqlCommand cmd = new SqlCommand("tblTo_LayNguoiQuanLy", cn.ketnoi());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("to", SqlDbType.Int)).Value = danhSachTo.GetFocusedRowCellDisplayText("MaTo");
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count <= 0)
                {
                    lbQl.Text = "Chưa có quản lý";
                    lbNgayBatDau.Text = "";
                }
                else
                {
                    lbQl.Text = dt.Rows[0]["HoTen"].ToString();
                    lbNgayBatDau.Text = (dt.Rows[0]["n"] + "/" + dt.Rows[0]["t"] + "/" + dt.Rows[0]["nam"]).ToString();
                }
                try
                {
                    SqlCommand cmd_binding = new SqlCommand("tblNhanVien_LoadDSTheoTo", cn.ketnoi());
                    cmd_binding.CommandType = CommandType.StoredProcedure;
                    cmd_binding.Parameters.Add(new SqlParameter("to", SqlDbType.Int)).Value = danhSachTo.GetFocusedRowCellDisplayText("MaTo");
                    SqlDataAdapter da_binding = new SqlDataAdapter(cmd_binding);
                    DataTable dtbinding = new DataTable();
                    da_binding.Fill(dtbinding);
                    gridControlDSNhanVien.DataSource = dtbinding;
                }
                catch
                {
                }
            }
            catch
            {
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            them = false;
            txtTenTo.Enabled = true;
            btnLuu.Enabled = true;
            btnSua.Enabled = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;
            gridControlTo.Enabled = false;
            vitri = int.Parse(danhSachTo.FocusedRowHandle.ToString());
            txtTenTo.Focus();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            them = true;
            txtTenTo.Enabled = true;
            btnLuu.Enabled = true;
            btnSua.Enabled = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;
            gridControlTo.Enabled = false;
            lbQl.Text = "";
            lbNgayBatDau.Text = "";
            txtTenTo.Text = "";
            txtMaTo.Text = "";
            txtTenTo.Focus();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtTenTo.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập tên tổ", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtTenTo.Focus();
            }
            else
            {
                if (them == true)
                {
                    SqlCommand cmd = new SqlCommand("tblTo_Them",cn.ketnoi());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("tento",SqlDbType.NVarChar)).Value = txtTenTo.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        UcQuanLyTo_Load(sender, e);
                    }
                    else
                    {
                        MessageBox.Show("Đã xảy ra lỗi trong quá trình thêm","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        UcQuanLyTo_Load(sender, e);
                    }
                }
                else
                {
                    SqlCommand cmd_sua = new SqlCommand("tblTo_Sua", cn.ketnoi());
                    cmd_sua.CommandType = CommandType.StoredProcedure;
                    cmd_sua.Parameters.Add(new SqlParameter("mato", SqlDbType.Int)).Value = txtMaTo.Text;
                    cmd_sua.Parameters.Add(new SqlParameter("tento", SqlDbType.NVarChar)).Value = txtTenTo.Text;
                    if (cmd_sua.ExecuteNonQuery() == 1)
                    {
                        UcQuanLyTo_Load(sender, e);                        
                        danhSachTo.FocusedRowHandle = vitri;
                    }
                    else
                    {
                        MessageBox.Show("Đã xảy ra lỗi trong quá trình sửa", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        UcQuanLyTo_Load(sender, e);
                    }

                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            UcQuanLyTo_Load(sender, e);
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (txtMaTo.Text != "")
            {
                if (MessageBox.Show("Bạn có chắc chắn muốn xóa tổ này không?\n Nếu bạn chọn Yes mọi thông tin liên quan đến tổ sẽ bị xóa them\nBạn nên chuyển các thành viên sang tổ khác trước khi xóa", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                {
                    SqlCommand cmd = new SqlCommand("tblTo_Xoa", cn.ketnoi());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("mato", SqlDbType.Int)).Value = txtMaTo.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        UcQuanLyTo_Load(sender, e);
                        MessageBox.Show("Xóa thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                MessageBox.Show("Chưa chọn tổ để xóa", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                danhSachTo.FocusedRowHandle = 0;
            }
        }

        private void txtTim_TextChanged(object sender, EventArgs e)
        {
            if (txtTim.Text == "" || txtTim.Text == "Nhập từ khóa tìm kiếm")
            {
                UcQuanLyTo_Load(sender, e);
            }
            else
            {
                SqlCommand cmd = new SqlCommand("tblTo_Tim", cn.ketnoi());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("tim", SqlDbType.NVarChar)).Value = txtTim.Text;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable(); da.Fill(dt);
                gridControlTo.DataSource = dt;
            }
        }

        private void txtTim_Enter(object sender, EventArgs e)
        {
            if (txtTim.Text == "Nhập từ khóa tìm kiếm")
            {
                txtTim.Text = "";
            }
        }

        private void txtTim_Leave(object sender, EventArgs e)
        {
            if (txtTim.Text == "" || txtTim.Text != "")
            {
                txtTim.Text = "Nhập từ khóa tìm kiếm";
            }
        }

        private void btnIn_Click(object sender, EventArgs e)
        {
            frmInDsTo _frmDSTo = new frmInDsTo();
            _frmDSTo.ShowDialog();
        }

        private void gridViewDSNhanVien_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            if (e.RowHandle == danhSachTo.FocusedRowHandle)
            {
                e.Appearance.BackColor = Color.LightPink;
            }
        }
    }
}
